home *** CD-ROM | disk | FTP | other *** search
- /*
- QFM (Quick Flat Memory) Manajer
- (C)opyright 1995 by Render of ACC TEAM
- UNREGISTERED VERION
- */
-
- #ifndef __QFML_H
- #define __QFML_H
-
-
- /* ==================================================
- Start 32-bit plane mode
- Parameters: None
- Returns: 0 if success
- 1 ERROR getting himmem address
- 2 ERROR enabling A20
- 3 ERROR CPU already under prottected mode
- 4 ERROR CPU running under DPMI, cannot intialize.
- ===================================================== */
- extern "C" unsigned int StartPL (void);
-
-
-
- /* ==================================================
- Leave 32-bit plane mode
- Parameters: None
- Returns: 0 if success
- 1 ERROR Himem was used to start plane mode
- but it can not be found now.
- 2 ERROR Himem was used to start plane mode
- but cannot find it's address now.
- 3 ERROR Trying to disable a20
- ===================================================== */
- extern "C" unsigned int LeavePL (void);
-
-
-
- /* ==================================================
- Open all memory available past the first Mg
- Parameters: None
- Returns: 0 if success
- 1 ERROR Getting max. block size
- 2 ERROR Getting max. block.
- 3 ERROR Locking max. block to get its address
- ===================================================== */
- extern "C" unsigned int OpenMem (void);
-
-
-
- /* ==================================================
- Close all memory reserved by OpenMem
- Parameters: None
- Returns: 0 if success
- 1 ERROR Trying to unlock block of memory.
- 2 ERROR Deallocking block of memory.
- ===================================================== */
- extern "C" unsigned int CloseMem (void);
-
-
-
- /* ==================================================
- Moves blocks of memory in plane mode. Size can be
- anything from 0 bytes to 2^32 bytes.
-
- Parameters: 1º Source offset. A 32 bit offset
- pointing to the block of memory
- defining source.
- 2º Destination offset. A 32 bit
- offset pointing to the block
- of memory to be used as destination.
- 3º Number of bytes to be moved.
- A 32-bit number ranging from 0 to 2^32.
-
- Returns: A long integer representing a 32-bit offset
- which is the last address used as destination+1.
- ===================================================== */
- extern "C" unsigned long Pl2Pl (unsigned long ,unsigned long ,unsigned long);
-
-
-
- /* =====================================================================
- Moves blocks of memory in plane mode. Size can be
- anything from 0 bytes to 2^32 bytes. This one is
- for asm coding (parameters passed by registers).
-
- Parameters: ESI a 32-bit pointer offset pointing the source.
- EDI a 32-bit pointer offset pointing the destination.
- EBX a 32-bit integer containing the number of bytes to move
-
- Returns: EDI Last destination used + 1.
- ======================================================================== */
-
- extern "C" unsigned long Pl2Pla (void); // ## ensamblador
-
-
-
- /* ==================================================
- Translates a memory address in the form of seg:off
- to an offset of 32 bits.
-
- Parameters: 1º SEGMENT
- 2º OFFSET
-
- Returns: OFFSET as a 32-bit number.
- ===================================================== */
- extern "C" unsigned long VirToPL (unsigned int, unsigned int);
-
-
-
- /* ==================================================
- Translates a memory address in the form of seg:off
- to an offset of 32 bits. This one is for asm coders.
- Parameters passed by registers.
-
- Parameters: AX=SEGMENT
- BX=OFFSET
-
- Returns: EAX= OFFSET as a 32-bit number.
- ===================================================== */
-
- extern "C" unsigned long VirToPLa (void); // ## ensamblador
-
-
-
- /* ==================================================
- Gives the start address of the memory block reserved
- by OpenMem.
-
- Parameters: None
- Returns: OFFSET to the start of the memory block allocated
- by OpenMem.
- ===================================================== */
- extern "C" unsigned long GiveSta (void);
-
-
-
- /* ==================================================
- Get the amount of memory reserved by OpenMem()
- Parameters: None
- Returns: Number of Kilobytes allocated by OpenMem.
- ===================================================== */
- extern "C" unsigned int GiveAmo (void);
-
-
-
- /* ==================================================
- These are the usual poke functions, ranging from
- byte to dword.
-
- Parameters: 1º OFFSET of memory to poke
- 2º DATA to poke.
-
- Returns: DATA poked.
- ===================================================== */
- extern "C" unsigned int Pokeb (unsigned long , unsigned char);
- extern "C" unsigned int Pokew (unsigned long , unsigned word);
- extern "C" unsigned int Pokedw (unsigned long , unsigned dword);
-
-
-
- /* ==================================================
- These are the usual peek functions, ranging from
- byte to dword.
-
- Parameters: 1º OFFSET of memory to poke
-
- Returns: DATA peeked.
- ===================================================== */
- extern "C" unsigned char Peekb (unsigned long );
- extern "C" unsigned int Peekw (unsigned long );
- extern "C" unsigned long Peekdw (unsigned long );
-
- #endif